A computação passou por uma mudança fundamental de otimizada para latência projeto de CPU para orientada ao throughput arquiteturas de GPU. Enquanto uma CPU é como uma moto de entrega de alta velocidade (rápida para um único pacote), uma GPU é um imenso navio cargueiro: move-se mais devagar por item, mas carrega 50.000 contêineres de cada vez.
1. Latência versus Throughput
As CPUs são projetadas para minimizar o tempo de conclusão para uma única sequência de instruções usando previsão de ramificação sofisticada. Por outro lado, Unidades de Processamento Gráfico (GPUs) são projetadas para maximizar o trabalho por segundo executando milhares de threads em paralelo, sacrificando a velocidade individual por um throughput agregado enorme.
2. Alocação de Transistores
A GPU oferece muito maior throughput de instruções e largura de banda de memória do que uma CPU dentro de um envelope de preço e potência semelhante. As GPUs são especializadas em cálculos altamente paralelos e dedicam mais transistores a unidades de processamento de dados (ALUs), enquanto as CPUs dedicam mais transistores ao cache de dados e controle de fluxo.
3. A Evolução do CUDA
Arquitetura Unificada de Computação (CUDA) foi introduzido pela NVIDIA em 2006. É uma plataforma e modelo de programação paralela que permite aumentos dramáticos no desempenho aproveitando o poder da GPU independentemente das APIs gráficas.